package imotech.web.mbeans;

import imotech.ejb.dao.ImovelDAO;
import imotech.ejb.model.ImovelBusca;

import java.util.List;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean(name="busca")
@SessionScoped
public class Busca {
	private String negociacao;
	private String tipo;
	private String bairro;
	private int valorMinimo;
	private int valorMaximo;
	private int quartosMinimo;
	private int quartosMaximo;

	@EJB
	private ImovelDAO imovelDAO;

	public String getNegociacao() {
		return negociacao;
	}

	public void setNegociacao(String negociacao) {
		this.negociacao = negociacao;
	}

	public String getTipo() {
		return tipo;
	}

	public void setTipo(String tipo) {
		this.tipo = tipo;
	}

	public String getBairro() {
		return bairro;
	}

	public void setBairro(String bairro) {
		this.bairro = bairro;
	}

	public int getValorMinimo() {
		return valorMinimo;
	}

	public void setValorMinimo(int valorMinimo) {
		this.valorMinimo = valorMinimo;
	}

	public int getValorMaximo() {
		return valorMaximo;
	}

	public void setValorMaximo(int valorMaximo) {
		this.valorMaximo = valorMaximo;
	}

	public int getQuartosMinimo() {
		return quartosMinimo;
	}

	public void setQuartosMinimo(int quartosMinimo) {
		this.quartosMinimo = quartosMinimo;
	}

	public int getQuartosMaximo() {
		return quartosMaximo;
	}

	public void setQuartosMaximo(int quartosMaximo) {
		this.quartosMaximo = quartosMaximo;
	}

	public List<imotech.ejb.model.Imovel> getImoveis() {
		if(getNegociacao() == null) {
			return imovelDAO.todos();
		} else {
			ImovelBusca criterio = new ImovelBusca();

			if(!getNegociacao().equals("")) {
				criterio.setNegociacao(getNegociacao());
			}
			if(!getTipo().equals("")) {
				criterio.setTipo(getTipo());
			}
			if(!getBairro().equals("")) {
				criterio.setBairro(getBairro());
			}
			if(getValorMinimo() != 0) {
				criterio.setValorMinimo(getValorMinimo());
			}
			if(getValorMaximo() != 0) {
				criterio.setValorMaximo(getValorMaximo());
			}
			if(getQuartosMinimo() != 0) {
				criterio.setQuartosMinimo(getQuartosMinimo());
			}
			if(getQuartosMaximo() != 0) {
				criterio.setQuartosMaximo(getQuartosMaximo());
			}
			return imovelDAO.buscar(criterio);
		}
	}

}
